\clearpage

\section{结论和展望}

本项目基于 Windows 上的异步 IO 框架 —— IO 完成端口实现了一个异步 Socket 服务器，并在此基础上实现了 WebSocket 服务器框架，提供了异步的 IO 接口，并支持了 WebSocket 连接的断线检测等功能。项目虽然规模不大，或者说相当精简，但仍提供了必要的功能；同时项目避免了对大型库的使用且借此保持了较小的二进制体积；再者，服务器在性能测试中的表现与目前主流的开源 WebSocket 框架相当，足以支撑本毕业设计针对的实际应用场景。

在实现方面，项目中使用了部分 C++17 的特性。例如标准库中的 \texttt{std::tuple} 和 \texttt{std::variant}、用户定义字面量 、constexpr if 等，有效的改善了代码质量和可读性；但由于 \texttt{ranges} 库在 C++20 中被标准库实现，对于集合类的操作仍然还得采取较为原始的手段，这也是为什么会有 Boost 这个不是标准库胜似标准库的庞大存在了，它实现了很多 C++ 开发者非常需要但并没有被标准所实现的功能。

在 WebSocket 服务器方面，本项目仍有许多可以改进的空间，例如：目前服务器端的传输层安全协议支持是通过 nginx 代理实现，尚未集成到框架中，改进手段可以通过 OpenSSL 的 BIO 接口手动对数据进行加密/解密处理，从而实现安全 WebSocket 服务器；参考 ASIO 实现协程和服务器的同步 IO 接口，减少异步模型带来的复杂度。

整体而言，本次的毕业设计加强了我对于 WebSocket 协议相对于 HTTP 协议的优势和它在 Web 中的主要应用场景的理解，同时也了解服务器 IO 模型、以及异步 IO 模型相对其它 IO 模型区别，并积累了许多在 Windows 上的 C++ 服务器开发经验。

对于本毕业设计的展望还是其能够在实际的生产活动中发挥它的作用，或者能够给需要 Windows 上的 WebSocket 协议实现的用户一个还不错的选择。